﻿#pragma once

/************************************************************************/
/* 行数据处理线程:此线程负责行数据整理供外部使用						*/
/************************************************************************/

#include <QThread>
#include <QMap>
#include <QPair>
#include <QTextCodec>
#include <QQueue>
#include <QFile>
#include <QTextStream>
#include <QReadWriteLock>
#include <QStringList>

typedef struct
{

}tagFileData;



class LineDataDealThread : public QThread
{
	Q_OBJECT

public:
	LineDataDealThread(QObject *parent);
	~LineDataDealThread();
	//push一行文件内容
	bool PutLineData(const QString &strLineData);
private:
	virtual void run();
	QMap<unsigned int, QPair<QString,QString>> m_MapIndex;
	QMap<QString, QFile*> m_MapFileIndex;
	//get一行文件内容
	bool GetLineData(QString &strLineData);
	//待处理行数据
	QQueue<QString> m_QueueLineData;
	QReadWriteLock m_ReadWriteLock;
	//
	void HandleFileMap(const QString &strTitle);
	void CloseAllMapFile();
};
